However large and sufficient a data storage system may initially appear, the experience of the data storage industry has shown that all storage systems require support for capacity expansion. Capacity expansion refers to the process of adding additional data storage space to a data storage system. There are two primary ways in which the capacity of a data storage system may be expanded. The first way that capacity may be expanded is through the addition of mass storage devices, such as hard disk drives, to a data storage system. This type of capacity expansion is known as ‘vertical’ expansion. The second way that capacity may be expanded is through the addition of storage nodes. This is referred to as ‘horizontal’ expansion.
Another way that capacity may be added to a particular storage node is through the process of drive group migration. Drive group migration involves physically moving a group of mass storage devices from one storage node to another. When this process is performed, it is expected that the data, volumes and storage metadata on the group of drives that is being moved will remain intact. However, organizing the mass storage devices and the data stored thereon to enable both capacity expansion and drive group migration, while also retaining high-performance and conventional access to the data, can be a challenging undertaking.
In some data storage systems, it is necessary to configure the storage nodes so that data access is not interrupted in the presence of CPU, memory, motherboard or disk controller failure. In order to provide this functionality, redundant active-active controller pairs are frequently utilized. Active-active controller pairs allow one controller and its associated components to take over the volumes of another controller in the event of a failure. Rather than one controller being unutilized and simply acting as a backup for the other controller, both controllers are actively utilized during normal operation, and each controller can provide backup to the other controller in the event of a failure. It has proven to be difficult to implement a storage system utilizing active-active controllers and that also meets the desirable goals of simple capacity expansion and functional drive group migration.
It is with respect to these considerations and others that the present invention has been made.